package cn.wk.service;

import cn.wk.domain.Course;
import cn.wk.domain.CourseDoc;
import cn.wk.dto.CourseDto;
import cn.wk.query.CourseDocQuery;
import cn.wk.query.CourseQuery;
import cn.wk.util.AjaxResult;
import cn.wk.util.PageList;
import com.baomidou.mybatisplus.service.IService;

import javax.validation.Valid;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author wk
 * @since 2021-03-06
 */
public interface ICourseService extends IService<Course> {

    /**
     * 查询，高级查询，分页
     * @return
     */
    PageList<Course> findList(CourseQuery query);

    /**
     * 添加
     * @param dto
     */
    void add(@Valid CourseDto dto);

    /**
     *  修改
     * @param dto
     */
    void updateCourse(@Valid CourseDto dto);

    /**
     * 上线
     * @param id
     */
    void onLineCourse(Long id);

    /**
     * 下线
     * @param id
     */
    void offLineCourse(Long id);

    /**
     * 课程发布和下架
     * @param courseId
     * @param flag
     * @return
     */
    AjaxResult onLineOrOffline(Long courseId, boolean flag);

    /**
     * es
     * @param courseDocQuery
     * @return
     */
    PageList<CourseDoc> queryCourse(CourseDocQuery courseDocQuery);
}
